/*
 * Copyright (c) 2007-2008, Thomas Krause (tho.krause@gmail.com)
 * 
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 * 
 *     * Redistributions of source code must retain the above copyright notice,
 *       this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright notice,
 *       this list of conditions and the following disclaimer in the documentation
 *       and/or other materials provided with the distribution.
 *     * Neither the name of gidoo nor the names of its contributors may be used to
 *       endorse or promote products derived from this software without specific
 *       prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package org.gidoo.cms;

import java.util.LinkedList;
import java.util.List;
import org.apache.wicket.markup.html.WebPage;
import org.gidoo.cms.editor.edit.EditorComponent;
import org.gidoo.cms.editor.edit.SimpleEditorComponent;
import org.gidoo.cms.view.ContentView;

/**
 * Override this class and and {@link GidooCMS#createNewConfiguration() } in order
 * to set some CMS-specific properties.
 * 
 * @see GidooCMS#createNewConfiguration() 
 * @author <a href="mailto:tho.krause@gmail.com">Thomas Krause</a>
 */
public class DefaultConfiguration 
{
  
  /**
   * The path where to mount the CMS part of the application.
   * @see #initMountUrls()
   */
  public String getCMSPath()
  {
    return "cms";
  }
  
  /**
   * The path where to mount the editor UI part of the application.
   * @see #initMountUrls()
   */
  public String getCMSEditPath()
  {
    return "edit";
  }
  
  /**
   * The path where to mount the publishing UI part of the application.
   * @see #initMountUrls()
   */
  public String getCMSPublishPath()
  {
    return "publish";
  }
  
  /**
   * The path where to mount the administration UI part of the application.
   * @see #initMountUrls()
   */
  public String getCMSAdminPath()
  {
    return "admin";
  }
  
  /**
   * The page which is used as the view of the CMS.
   */
  public Class<? extends WebPage> getCMSMainPage()
  {
    return ContentView.class;
  }
  
  /**
   * The editor component that is used at the editor-UI.
   */
  public Class<? extends EditorComponent> getEditorComponent()
  {
    return SimpleEditorComponent.class;
  }
  
  /** Return all addins for the editor UI */
  public List<IEditPlugin> getEditPlugins()
  {
    return new LinkedList<IEditPlugin>();
  }
  
  /** Return all addins for the publisher UI */
  public List<IPlugin> getPublishPlugins()
  {
    return new LinkedList<IPlugin>();
  }
  
  /** Return all addins for the administrator UI */
  public List<IAdminPlugin> getAdminPlugins()
  {
    return new LinkedList<IAdminPlugin>();
  }
  
  
}
